package sun.superstring.healthcomputerdemo;

import java.util.Scanner;

public class AllTest {
    public static void main(String[] args) {
        // 目标：完成健康计算器
        // 1. 先让用户输入自己的个人信息：体重、身高、性别、年龄
        Scanner scanner = new Scanner(System.in);

        System.out.println("欢迎使用健康计算器！");
        System.out.println("请输入你的身高（cm）：");
        double height = scanner.nextDouble();

        System.out.println("请输入你的体重（kg）：");
        double weight = scanner.nextDouble();

        System.out.println("请输入你的性别（男/女）：");
        String gender = scanner.next();

        System.out.println("请输入你的年龄（岁）：");
        int age = scanner.nextInt();

        // 2. 根据用户的个人信息，计算出BMI值
        double bmi = calculateBMI(height, weight);
        System.out.println("你的BMI值是：" + bmi);

        // 3. 根据用户的BMR值，判断用户的健康状况
        double bmr = calculateBMR(height, weight, gender, age);
        System.out.println("你的BMR值是：" + bmr);

        checkBMI(bmi);
    }

    // 2. 根据用户的个人信息，计算出BMI值
    public static double calculateBMI(double height, double weight) {
        // 计算BMI值的公式是 体重（kg）/（身高（m）*身高（m））
        double h = height / 100;
        double bmi = weight / (h * h);
        return bmi;
    }

    // 3. 根据用户的个人信息，计算出BMR值
    public static double calculateBMR(double height, double weight, String gender, int age) {
        // 计算BMR值
        double bmr = 0.0;
        if (gender.equals("男")) {
            bmr = 88.362 + (13.397 * weight + 4.799 * height - 5.677 * age);
        } else {
            bmr = 447.593 + (9.247 * weight + 3.098 * height - 4.330 * age);
        }
        return bmr;
    }


    // 判断用户的BMI的情况
    public static void checkBMI(double bmi) {
        if (bmi < 18.5) {
            System.out.println("你的BMI值是" + bmi + "，属于过轻状态，需要INCREMENT BMI值。");
        } else if (bmi >= 18.5 && bmi < 24.9) {
            System.out.println("你的BMI值是" + bmi + "，属于正常状态，不需要INCREMENT BMI值。");
        } else if (bmi >= 24.9&& bmi < 29.9)  {
            System.out.printf("你的BMI值是 %.2f，属于过重状态，建议适当减少热量摄入。\n", bmi);
        } else {
            System.out.printf("你的BMI值是 %.2f，属于肥胖状态，建议咨询医生或营养师。\n", bmi);
        }
    }




}
